/* * Created by IntelliJ IDEA. * User: mateusz * Date: 02.03.2015 * Time: 21:41 */ package it.lisik.usosapi.injectors; import com.google.api.client.auth.oauth.OAuthParameters; import com.google.api.client.http.HttpRequest; import com.google.api.client.http.HttpRequestFactory; import com.google.api.client.http.HttpRequestInitializer; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.JsonObjectParser; import com.google.api.client.json.jackson2.JacksonFactory; import com.google.inject.AbstractModule; import com.google.inject.Provides; import com.google.inject.Singleton; import com.google.inject.name.Names; import java.io.IOException; public class OAuthModule extends AbstractModule { private final String baseUrl; private final OAuthParameters oAuthParameters; public OAuthModule(String baseUrl, OAuthParameters oAuthParameters) { super(); this.baseUrl = baseUrl; this.oAuthParameters = oAuthParameters; } protected void configure() { bind(String.class).annotatedWith(Names.named("ApplicationUrl")).toInstance(baseUrl); } @Provides @Singleton public HttpRequestFactory provideHttpRequestFactory() { return new NetHttpTransport().createRequestFactory( new HttpRequestInitializer() { @Override public void initialize(HttpRequest request) throws IOException { request.setInterceptor(oAuthParameters); request.setParser(new JsonObjectParser(new JacksonFactory())); } } ); } }